#ifndef PHYSICALBODY_H
#define PHYSICALBODY_H

#include "Vector2D.h"
#include "Vector2DF.h"
#include "Rectangle.h"
#include "Math.h"

class PhysicalBody{
public:
	PhysicalBody();
	~PhysicalBody();
	
	void SetX(int x);
	void SetY(int y);
	void SetW(int w);
	void SetH(int h);
	void SetVX(float vx);
	void SetVY(float vy);
	void SetAX(float ax);
	void SetAY(float ay);

	void Update();

	int GetX();
	int GetY();
	int GetW();
	int GetHalfOfWidth();
	int GetH();
	int GetHalfOfHeight();
	float GetVX();
	float GetVY();
	float GetAX();
	float GetAY();

	void SetCollisionStatus(bool colliding);
	bool GetCollisionStatus();

	Rectangle* GetDimensions();
    void Blit();
	bool DetectCollisionWith(PhysicalBody* other_body);
	int CollideWith(PhysicalBody* other_body);
	void ApplyForce(float x = 0, float y = 0);

public:
	Rectangle dimensions;
	Vector2DF velocity;
	Vector2DF acceleration;
	Vector2DF drag;

public:
	bool colliding;
	

};

#endif